package com.example.tests;

public class GroupData implements Comparable<GroupData>{
        private String name;
        private String header;
        private String footer;

        public GroupData() {
        }

		@Override
		public String toString() {
			return "GroupData [name=" + name + ", header=" + header
					+ ", footer=" + footer + "]";
		}

		@Override
		public int hashCode() {
			final int prime = 31;
			int result = 1;
			result = prime * result + ((name == null) ? 0 : name.hashCode());
			return result;
		}

		@Override
		public boolean equals(Object obj) {
			if (this == obj)
				return true;
			if (obj == null)
				return false;
			if (getClass() != obj.getClass())
				return false;
			GroupData other = (GroupData) obj;
			if (name == null) {
				if (other.name != null)
					return false;
			} else if (!name.equals(other.name))
				return false;
			return true;
		}

		@Override
		public int compareTo(GroupData other) {
			return this.name.toLowerCase().compareTo(other.name.toLowerCase());
		}

		public GroupData withName(String name) {
			this.name = name;
			return this;
		}

		public GroupData withHeader(String header) {
			this.header = header;
			return this;
		}

		public GroupData withFooter(String footer) {
			this.footer = footer;
			return this;
		}

		public String getName() {
			return name;
		}

		public String getHeader() {
			return header;
		}

		public String getFooter() {
			return footer;
		}
        
}
